package com.ruoyi.waterDistribution.service;

import com.ruoyi.common.core.domain.business.waterDistribution.WiGetvolM;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 取水断面月度调水水量计算Service接口
 * 
 * @author ps
 * @date 2023-02-16
 */
public interface IWiGetvolMService 
{
    /**
     * 查询取水断面月度调水水量计算
     * 
     * @param crossCd 取水断面月度调水水量计算主键
     * @return 取水断面月度调水水量计算
     */
    public WiGetvolM selectWiGetvolMByCrossCd(String crossCd);

    /**
     * 查询取水断面月度调水水量计算列表
     * 
     * @param wiGetvolM 取水断面月度调水水量计算
     * @return 取水断面月度调水水量计算集合
     */
    public List<WiGetvolM> selectWiGetvolMList(WiGetvolM wiGetvolM);

    /**
     * 新增取水断面月度调水水量计算
     * 
     * @param wiGetvolM 取水断面月度调水水量计算
     * @return 结果
     */
    public int insertWiGetvolM(WiGetvolM wiGetvolM);

    /**
     * 修改取水断面月度调水水量计算
     * 
     * @param wiGetvolM 取水断面月度调水水量计算
     * @return 结果
     */
    public int updateWiGetvolM(WiGetvolM wiGetvolM);

    /**
     * 批量删除取水断面月度调水水量计算
     * 
     * @param crossCd 需要删除的取水断面月度调水水量计算主键集合
     * @return 结果
     */
    public int deleteWiGetvolMByCrossCds(String crossCd,String getYm);

    /**
     * 删除取水断面月度调水水量计算信息
     * 
     * @param crossCd 取水断面月度调水水量计算主键
     * @return 结果
     */
    public int deleteWiGetvolMByCrossCd(String crossCd,String getYm);

    /**
     * 调水过程核定
     * @param year
     * @param chanCd
     */
    int setCroVol(String year, String chanCd) throws Exception;

    /**
     * 汇总年度各个入境渠道取水断面的旬水量
     * @param year
     * @param chanCd
     */
    ArrayList<Object> caleCroVol(String year, String chanCd);

    /**
     * 年度配水计划
     * @param year
     * @param chanCd
     * @return
     */
    ArrayList<Object> getCroVolYear(String year, String chanCd);

    /**
     * 年度调水分析
     * @param year
     * @param chanCd
     */
    HashMap<String, Object> croVolAnalys(String year, String chanCd);

    /**
     * 导入上一年调水数据
     * @param year
     * @param crossCd
     * @return
     */
    List<WiGetvolM> importLastYearData(String year, String crossCd);
}
